NodeMCU Wifi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if true then
g_mac = nil
print("set up wifi mode")
wifi.setmode(wifi.STATION)
--根据无线路由器来设置 WiFi 名称和 WiFi 密码
wifi.sta.config("WiFi 名称", "WiFi 密码"))
wifi.sta.connect()
wifi.sta.autoconnect(1)
cnt = 0
tmr.alarm(1, 1000, tmr.ALARM_AUTO, function()
if (wifi.sta.getip() == nil) and (cnt < 20) then
print("----IP unavaiable, Waiting...")
cnt = cnt + 1
else
tmr.stop(1)
if (cnt < 20) then print("IP:" .. wifi.sta.getip())
print("MAC:" .. wifi.sta.getmac())
else
print("----No Wifi Connected.")
end
end
end)
else
print("Modify wifi.sta.config() function in line 7 according settings of your wireless router.")
end

WIFI Module

wifi.setmode( )

原型: wifi.setmode(mode[, save])
作用: 配置WiFi工作模式
参数:

  1. mode模式
    1.wifi.STATION 用于连接路由器,以便于连接互联网
    2.wifi.SOFTAP 设备仅作为接入点。这将允许查看WiFi网络列表中的设备(当然,除非您隐藏SSID)。在这种模式下,计算机可以连接到NodeMCU,创建一个局域网。除非更改此值,否则NodeMCU设备将获得本地IP地址192.168.4.1,并为连接的计算机分配下一个可用的IP地址,例如192.168.4.2
    3.wifi.STATIONAP 结合了wifi.STATION和wifi.SOFTAP的功能。它允许您创建本地WiFi连接并连接到另一个WiFi路由器
    4.wifi.NULLMODE 将WiFi模式更改为NULL_MODE将使WiFi进入与MODEM_SLEEP类似的低功耗状态,只要wifi.nullmodesleep(false)尚未被调用
  2. save 选择是否将WiFi模式保存到Flash中
    1.true WiFi模式配置将通过电源循环保留。(默认)
    2.false WiFi模式配置将不会通过电源循环保留。

返回值: 设置后的模式
例子: wifi.setmode(wifi.STATION)

wifi.sta.config()

原型: wifi.sta.config(station_config)
作用: 配置wifi设置
参数: wifi.STATION是包含了各种wifi设置数据的一张表

  1. SSID wifi的名称
  2. PWD wifi的密码

其他的还有很多参数可以设置,详见文档
返回值: true成功 false失败
例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--connect to Access Point (DO NOT save config to flash)
station_cfg={}
station_cfg.ssid="NODE-AABBCC"
station_cfg.pwd="password"
wifi.sta.config(station_cfg)
--connect to Access Point (DO save config to flash)
station_cfg={}
station_cfg.ssid="NODE-AABBCC"
station_cfg.pwd="password"
station_cfg.save=true
wifi.sta.config(station_cfg)
--connect to Access Point with specific MAC address
station_cfg={}
station_cfg.ssid="NODE-AABBCC"
station_cfg.pwd="password"
station_cfg.bssid="AA:BB:CC:DD:EE:FF"
wifi.sta.config(station_cfg)
--configure station but don't connect to Access point
station_cfg={}
station_cfg.ssid="NODE-AABBCC"
station_cfg.pwd="password"
station_cfg.auto=false
wifi.sta.config(station_cfg)

wifi.sta.connect()

在 station 模式下连接到配置的路由

wifi.sta.autoconnect( )

原型: wifi.sta.autoconnect(auto)
作用: 在station 模式下自动连接到路由
参数: 0禁用自动连接 1启用自动连接

wifi.sta.getip()

在station 模式下获取IP地址,网络掩码和网关地址。如果IP =”0.0.0.0”,则返回nil

1
2
3
4
5
6
7
8
9
-- print current IP address, netmask, gateway
print(wifi.sta.getip())
-- 192.168.0.111 255.255.255.0 192.168.0.1
ip = wifi.sta.getip()
print(ip)
-- 192.168.0.111
ip, nm = wifi.sta.getip()
print(nm)
-- 255.255.255.0

wifi.sta.getmac()

在station 模式下获取MAC地址,MAC地址为字符串,例如“18:fe:34:a2:d7:34”